#pragma once

#include <activemq/library/ActiveMQCPP.h>
#include <QString>
#include "log4qt/logger.h"
#include "log4qt/basicconfigurator.h"
#include "log4qt/propertyconfigurator.h"
#include <stdlib.h>
#include <memory>
#include <exception>

#include "connectionconfig.h"
#include "factorymanager.h"
#include "connectionmanager.h"
#include "factoryconfig.h"
#include "commandconfig.h"
#include "messageargs.h"

class Container
{
private:
	Container(const Container& );
	Container& operator=(const Container&);
	ConnectionConfig* connectionCfg;
	FactoryManager* factoryManager;
	bool isDestroyed;
	Log4Qt::Logger* log;

public:
	Container(void);
	~Container(void);
	void initSystem();
	void initLogSystem(const QString& path);
	void initCms();
	void destroy();

	 FactoryManager* const getFactoryManager() const{return factoryManager;}
	 ConnectionConfig* const getConnectionConfig() const{return connectionCfg;}

};
